<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.3" />
<title>gerrit create-project</title>
<style type="text/css">
/* Sans-serif font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
div#toctitle,
span#author, span#revnumber, span#revdate, span#revremark,
div#footer {
  font-family: Arial,Helvetica,sans-serif;
}

/* Serif font. */
div.sectionbody {
  font-family: Georgia,"Times New Roman",Times,serif;
}

/* Monospace font. */
tt {
  font-size: inherit;
}

body {
  margin: 1em 5% 1em 5%;
}

a {
  color: blue;
  text-decoration: underline;
}
a:visited {
  color: fuchsia;
}

em {
  font-style: italic;
  color: navy;
}

strong {
  font-weight: bold;
  color: #083194;
}

tt {
  font-size: inherit;
  color: navy;
}

h1, h2, h3, h4, h5, h6 {
  color: #527bbd;
  margin-top: 1.2em;
  margin-bottom: 0.5em;
  line-height: 1.3;
}

h1, h2, h3 {
  border-bottom: 2px solid silver;
}
h2 {
  padding-top: 0.5em;
}
h3 {
  float: left;
}
h3 + * {
  clear: left;
}

div.sectionbody {
  margin-left: 0;
}

hr {
  border: 1px solid silver;
}

p {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

ul, ol, li > p {
  margin-top: 0;
}
ul > li     { color: #aaa; }
ul > li > * { color: black; }

pre {
  padding: 0;
  margin: 0;
}

span#author {
  color: #527bbd;
  font-weight: bold;
  font-size: 1.1em;
}
span#email {
}
span#revnumber, span#revdate, span#revremark {
}

div#footer {
  font-size: small;
  border-top: 2px solid silver;
  padding-top: 0.5em;
  margin-top: 4.0em;
}
div#footer-text {
  float: left;
  padding-bottom: 0.5em;
}
div#footer-badges {
  float: right;
  padding-bottom: 0.5em;
}

div#preamble {
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
  margin-top: 1.0em;
  margin-bottom: 1.5em;
}
div.admonitionblock {
  margin-top: 2.0em;
  margin-bottom: 2.0em;
  margin-right: 10%;
  color: #606060;
}

div.content { /* Block element content. */
  padding: 0;
}

/* Block element titles. */
div.title, caption.title {
  color: #527bbd;
  font-weight: bold;
  text-align: left;
  margin-top: 1.0em;
  margin-bottom: 0.5em;
}
div.title + * {
  margin-top: 0;
}

td div.title:first-child {
  margin-top: 0.0em;
}
div.content div.title:first-child {
  margin-top: 0.0em;
}
div.content + div.title {
  margin-top: 0.0em;
}

div.sidebarblock > div.content {
  background: #ffffee;
  border: 1px solid #dddddd;
  border-left: 4px solid #f0f0f0;
  padding: 0.5em;
}

div.listingblock > div.content {
  border: 1px solid #dddddd;
  border-left: 5px solid #f0f0f0;
  background: #f8f8f8;
  padding: 0.5em;
}

div.quoteblock, div.verseblock {
  padding-left: 1.0em;
  margin-left: 1.0em;
  margin-right: 10%;
  border-left: 5px solid #f0f0f0;
  color: #777777;
}

div.quoteblock > div.attribution {
  padding-top: 0.5em;
  text-align: right;
}

div.verseblock > pre.content {
  font-family: inherit;
  font-size: inherit;
}
div.verseblock > div.attribution {
  padding-top: 0.75em;
  text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
  text-align: left;
}

div.admonitionblock .icon {
  vertical-align: top;
  font-size: 1.1em;
  font-weight: bold;
  text-decoration: underline;
  color: #527bbd;
  padding-right: 0.5em;
}
div.admonitionblock td.content {
  padding-left: 0.5em;
  border-left: 3px solid #dddddd;
}

div.exampleblock > div.content {
  border-left: 3px solid #dddddd;
  padding-left: 0.5em;
}

div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; }
a.image:visited { color: white; }

dl {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
dt {
  margin-top: 0.5em;
  margin-bottom: 0;
  font-style: normal;
  color: navy;
}
dd > *:first-child {
  margin-top: 0.1em;
}

ul, ol {
    list-style-position: outside;
}
ol.arabic {
  list-style-type: decimal;
}
ol.loweralpha {
  list-style-type: lower-alpha;
}
ol.upperalpha {
  list-style-type: upper-alpha;
}
ol.lowerroman {
  list-style-type: lower-roman;
}
ol.upperroman {
  list-style-type: upper-roman;
}

div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
  margin-top: 0.1em;
  margin-bottom: 0.1em;
}

div.tableblock > table {
  border: 3px solid #527bbd;
}
thead, p.table.header {
  font-weight: bold;
  color: #527bbd;
}
tfoot {
  font-weight: bold;
}
td > div.verse {
  white-space: pre;
}
p.table {
  margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
  border-style: none;
}
div.tableblock > table[frame="hsides"] {
  border-left-style: none;
  border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
  border-top-style: none;
  border-bottom-style: none;
}


div.hdlist {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
div.hdlist tr {
  padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
  font-weight: bold;
}
td.hdlist1 {
  vertical-align: top;
  font-style: normal;
  padding-right: 0.8em;
  color: navy;
}
td.hdlist2 {
  vertical-align: top;
}
div.hdlist.compact tr {
  margin: 0;
  padding-bottom: 0;
}

.comment {
  background: yellow;
}

.footnote, .footnoteref {
  font-size: 0.8em;
}

span.footnote, span.footnoteref {
  vertical-align: super;
}

#footnotes {
  margin: 20px 0 20px 0;
  padding: 7px 0 0 0;
}

#footnotes div.footnote {
  margin: 0 0 5px 0;
}

#footnotes hr {
  border: none;
  border-top: 1px solid silver;
  height: 1px;
  text-align: left;
  margin-left: 0;
  width: 20%;
  min-width: 100px;
}

div.colist td {
  padding-right: 0.5em;
  padding-bottom: 0.3em;
  vertical-align: top;
}
div.colist td img {
  margin-top: 0.3em;
}

@media print {
  div#footer-badges { display: none; }
}

div#toc {
  margin-bottom: 2.5em;
}

div#toctitle {
  color: #527bbd;
  font-size: 1.1em;
  font-weight: bold;
  margin-top: 1.0em;
  margin-bottom: 0.1em;
}

div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
  margin-top: 0;
  margin-bottom: 0;
}
div.toclevel2 {
  margin-left: 2em;
  font-size: 0.9em;
}
div.toclevel3 {
  margin-left: 4em;
  font-size: 0.9em;
}
div.toclevel4 {
  margin-left: 6em;
  font-size: 0.9em;
}

</style>
<script type="text/javascript">
/*<![CDATA[*/
window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}
var asciidoc = {  // Namespace.

/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////

/* Author: Mihai Bazon, September 2002
 * http://students.infoiasi.ro/~mishoo
 *
 * Table Of Content generator
 * Version: 0.4
 *
 * Feel free to use this script under the terms of the GNU General Public
 * License, as long as you do not remove or alter this notice.
 */

 /* modified by Troy D. Hanson, September 2006. License: GPL */
 /* modified by Stuart Rackham, 2006, 2009. License: GPL */

// toclevels = 1..4.
toc: function (toclevels) {

  function getText(el) {
    var text = "";
    for (var i = el.firstChild; i != null; i = i.nextSibling) {
      if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
        text += i.data;
      else if (i.firstChild != null)
        text += getText(i);
    }
    return text;
  }

  function TocEntry(el, text, toclevel) {
    this.element = el;
    this.text = text;
    this.toclevel = toclevel;
  }

  function tocEntries(el, toclevels) {
    var result = new Array;
    var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
    // Function that scans the DOM tree for header elements (the DOM2
    // nodeIterator API would be a better technique but not supported by all
    // browsers).
    var iterate = function (el) {
      for (var i = el.firstChild; i != null; i = i.nextSibling) {
        if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
          var mo = re.exec(i.tagName);
          if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
            result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
          }
          iterate(i);
        }
      }
    }
    iterate(el);
    return result;
  }

  var toc = document.getElementById("toc");
  var entries = tocEntries(document.getElementById("content"), toclevels);
  for (var i = 0; i < entries.length; ++i) {
    var entry = entries[i];
    if (entry.element.id == "")
      entry.element.id = "_toc_" + i;
    var a = document.createElement("a");
    a.href = "#" + entry.element.id;
    a.appendChild(document.createTextNode(entry.text));
    var div = document.createElement("div");
    div.appendChild(a);
    div.className = "toclevel" + entry.toclevel;
    toc.appendChild(div);
  }
  if (entries.length == 0)
    toc.parentNode.removeChild(toc);
},


/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////

/* Based on footnote generation code from:
 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
 */

footnotes: function () {
  var cont = document.getElementById("content");
  var noteholder = document.getElementById("footnotes");
  var spans = cont.getElementsByTagName("span");
  var refs = {};
  var n = 0;
  for (i=0; i<spans.length; i++) {
    if (spans[i].className == "footnote") {
      n++;
      // Use [\s\S] in place of . so multi-line matches work.
      // Because JavaScript has no s (dotall) regex flag.
      note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
      noteholder.innerHTML +=
        "<div class='footnote' id='_footnote_" + n + "'>" +
        "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
        n + "</a>. " + note + "</div>";
      spans[i].innerHTML =
        "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
        "' title='View footnote' class='footnote'>" + n + "</a>]";
      var id =spans[i].getAttribute("id");
      if (id != null) refs["#"+id] = n;
    }
  }
  if (n == 0)
    noteholder.parentNode.removeChild(noteholder);
  else {
    // Process footnoterefs.
    for (i=0; i<spans.length; i++) {
      if (spans[i].className == "footnoteref") {
        var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
        href = href.match(/#.*/)[0];  // Because IE return full URL.
        n = refs[href];
        spans[i].innerHTML =
          "[<a href='#_footnote_" + n +
          "' title='View footnote' class='footnote'>" + n + "</a>]";
      }
    }
  }
}

}
/*]]>*/
</script>
</head>
<body class="article">
<div id="header">
<h1>gerrit create-project</h1>
<span id="revnumber">version 2.5.2</span>
<div id="toc">
  <div id="toctitle">Table of Contents</div>
  <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_name">NAME</h2>
<div class="sectionbody">
<div class="paragraph"><p>gerrit create-project - Create a new hosted project</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>ssh</em> -p &lt;port&gt; &lt;host&gt; <em>gerrit create-project</em>
  [--owner &lt;GROUP&gt; &#8230; | -o &lt;GROUP&gt; &#8230;]
  [--parent &lt;NAME&gt; | -p &lt;NAME&gt; ]
  [--suggest-parents | -S ]
  [--permissions-only]
  [--description &lt;DESC&gt; | -d &lt;DESC&gt;]
  [--submit-type &lt;TYPE&gt; | -t &lt;TYPE&gt;]
  [--use-contributor-agreements | --ca]
  [--use-signed-off-by | --so]
  [--use-content-merge]
  [--require-change-id | --id]
  [[--branch &lt;REF&gt; | -b &lt;REF&gt;] &#8230;]
  [--empty-commit]
  { &lt;NAME&gt; | --name &lt;NAME&gt; }</pre>
<div class="attribution">
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>Creates a new bare Git repository under <tt>gerrit.basePath</tt>, using
the project name supplied.  The newly created repository is empty
(has no commits), but is registered in the Gerrit database so that
the initial commit may be uploaded for review, or initial content
can be pushed directly into a branch.</p></div>
<div class="paragraph"><p>If replication is enabled, this command also connects to each of
the configured remote systems over SSH and uses command line git
on the remote system to create the empty repository.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_access">ACCESS</h2>
<div class="sectionbody">
<div class="paragraph"><p>Caller must be a member of the privileged <em>Administrators</em> group,
or have been granted
<a href="access-control.html#capability_createProject">the <em>Create Project</em> global capability</a>.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_scripting">SCRIPTING</h2>
<div class="sectionbody">
<div class="paragraph"><p>This command is intended to be used in scripts.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
&lt;NAME&gt;
</dt>
<dd>
<p>
        Required; name of the new project to create.  If name ends
        with <tt>.git</tt> the suffix will be automatically removed.
</p>
</dd>
<dt class="hdlist1">
--name
</dt>
<dt class="hdlist1">
-n
</dt>
<dd>
<p>
        Deprecated alias for the &lt;NAME&gt; argument. This option may
        be removed in a future release.
</p>
</dd>
<dt class="hdlist1">
--branch
</dt>
<dt class="hdlist1">
-b
</dt>
<dd>
<p>
        Name of the initial branch(es) in the newly created project.
        Several branches can be specified on the command line.
        If several branches are specified then the first one becomes HEAD
        of the project. If none branches are specified then default value
        (<em>master</em>) is used.
</p>
</dd>
<dt class="hdlist1">
--owner
</dt>
<dt class="hdlist1">
-o
</dt>
<dd>
<p>
        Name of the group(s) which will initially own this repository.
        The specified group(s) must already be defined within Gerrit.
        Several groups can be specified on the command line.
</p>
<div class="paragraph"><p>Defaults to what is specified by <tt>repository.*.ownerGroup</tt>
in gerrit.config.</p></div>
</dd>
<dt class="hdlist1">
--parent
</dt>
<dt class="hdlist1">
-p
</dt>
<dd>
<p>
        Name of the parent project to inherit access rights
        through. If not specified, the parent is set to the default
        project <tt>All-Projects</tt>.
</p>
</dd>
<dt class="hdlist1">
--suggest-parents
</dt>
<dt class="hdlist1">
-S
</dt>
<dd>
<p>
        Suggest parent candidates. This option cannot be used with
        other arguments. Print out a list of projects that are
        already parents to other projects, thus it can help the user
        find a suitable parent for the new project.
</p>
</dd>
<dt class="hdlist1">
--permissions-only
</dt>
<dd>
<p>
        Create the project only to serve as a parent for other
        projects.  The new project&#8217;s Git repository will be
        initialized to have <em>HEAD</em> point to <em>refs/meta/config</em>.
</p>
</dd>
<dt class="hdlist1">
--description
</dt>
<dt class="hdlist1">
-d
</dt>
<dd>
<p>
        Initial description of the project.  If not specified,
        no description is stored.
</p>
<div class="paragraph"><p>Description values containing spaces should be quoted in single quotes
(').  This most likely requires double quoting the value, for example
<tt>--description "'A description string'"</tt>.</p></div>
</dd>
<dt class="hdlist1">
--submit-type
</dt>
<dt class="hdlist1">
-t
</dt>
<dd>
<p>
        Action used by Gerrit to submit an approved change to its
        destination branch.  Supported options are:
</p>
<div class="ulist"><ul>
<li>
<p>
FAST_FORWARD_ONLY: produces a strictly linear history.
</p>
</li>
<li>
<p>
MERGE_IF_NECESSARY: create a merge commit when required.
</p>
</li>
<li>
<p>
MERGE_ALWAYS: always create a merge commit.
</p>
</li>
<li>
<p>
CHERRY_PICK: always cherry-pick the commit.
</p>
</li>
</ul></div>
<div class="paragraph"><p>Defaults to MERGE_IF_NECESSARY.  For more details see
<a href="project-setup.html#submit_type">Change Submit Actions</a>.</p></div>
</dd>
<dt class="hdlist1">
--use-content-merge
</dt>
<dd>
<p>
        If enabled, Gerrit will try to perform a 3-way merge of text
        file content when a file has been modified by both the
        destination branch and the change being submitted.  This
        option only takes effect if submit type is not
        FAST_FORWARD_ONLY.  Disabled by default.
</p>
</dd>
<dt class="hdlist1">
--use-contributor-agreements
</dt>
<dt class="hdlist1">
--ca
</dt>
<dd>
<p>
        If enabled, authors must complete a contributor agreement
        on the site before pushing any commits or changes to this
        project.  Disabled by default.
</p>
</dd>
<dt class="hdlist1">
--use-signed-off-by
</dt>
<dd>
<p>
--so:
        If enabled, each change must contain a Signed-off-by line
        from either the author or the uploader in the commit message.
        Disabled by default.
</p>
</dd>
<dt class="hdlist1">
--require-change-id
</dt>
<dt class="hdlist1">
--id
</dt>
<dd>
<p>
        Require a valid <a href="user-changeid.html">Change-Id</a> footer
        in any commit uploaded for review. This does not apply to
        commits pushed directly to a branch or tag.
</p>
</dd>
<dt class="hdlist1">
--empty-commit
</dt>
<dd>
<p>
        Creates an initial empty commit for the Git repository of the
        project that is newly created.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="paragraph"><p>Create a new project called <tt>tools/gerrit</tt>:</p></div>
<div class="exampleblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><tt>$ ssh -p 29418 review.example.com gerrit create-project tools/gerrit.git</tt></pre>
</div></div>
</div></div>
<div class="paragraph"><p>Create a new project with a description:</p></div>
<div class="exampleblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><tt>$ ssh -p 29418 review.example.com gerrit create-project tool.git --description "'Tools used by build system'"</tt></pre>
</div></div>
</div></div>
<div class="paragraph"><p>Note that it is necessary to quote the description twice.  The local
shell needs double quotes around the value to ensure the single quotes
are passed through SSH as-is to the remote Gerrit server, which uses
the single quotes to delimit the value.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_replication">REPLICATION</h2>
<div class="sectionbody">
<div class="paragraph"><p>If the replication plugin is installed, the plugin will attempt to
perform remote repository creation by a Bourne shell script:</p></div>
<div class="exampleblock">
<div class="content">
<div class="literalblock">
<div class="content">
<pre><tt>mkdir -p '/base/project.git' &amp;&amp; cd '/base/project.git' &amp;&amp; git init --bare &amp;&amp; git update-ref HEAD refs/heads/master</tt></pre>
</div></div>
</div></div>
<div class="paragraph"><p>For this to work successfully the remote system must be able to run
arbitrary shell scripts, and must have <tt>git</tt> in the user&#8217;s PATH
environment variable.  Administrators could also run this command line
by hand to establish a new empty repository.</p></div>
<div class="paragraph"><p>A custom extension or plugin may also be developed to implement the
NewProjectCreatedListener extension point and handle custom logic
for remote repository creation.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
<a href="project-setup.html">Project Setup</a>
</p>
</li>
</ul></div>
</div>
</div>
<hr style="
  height: 2px;
  color: silver;
  margin-top: 1.2em;
  margin-bottom: 0.5em;
">
<div class="paragraph"><p>Part of <a href="index.html">Gerrit Code Review</a></p></div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Version 2.5.2<br />
Last updated 2013-01-09 16:02:39 CET
</div>
</div>
</body>
</html>
